/**
 * ManagerProperties.java Created Mar 11, 2009 by Andrew Butler, PSL
 */
package manager.app;

import prisms.arch.PrismsApplication;
import prisms.arch.ds.User;
import prisms.arch.event.PrismsProperty;

/**
 * The set of all properties available to the manager application
 */
public class ManagerProperties
{
	private ManagerProperties()
	{
	}

	/**
	 * All applications available to the application
	 */
	public static final PrismsProperty<PrismsApplication []> applications = PrismsProperty.create(
		"applications", PrismsApplication [].class);

	/**
	 * The application that has been selected by the user to be edited
	 */
	public static final PrismsProperty<PrismsApplication> selectedApp = PrismsProperty.create(
		"selectedApp", PrismsApplication.class);

	/**
	 * The client that has been selected by the user to be edited
	 */
	public static final PrismsProperty<prisms.arch.ClientConfig> selectedClient = PrismsProperty
		.create("selectedClient", prisms.arch.ClientConfig.class);

	/**
	 * The group selected for configuration within the selected application
	 */
	public static final PrismsProperty<prisms.arch.ds.UserGroup> selectedAppGroup = PrismsProperty
		.create("selectedAppGroup", prisms.arch.ds.UserGroup.class);

	/**
	 * The permission selected for configuration within the selected application
	 */
	public static final PrismsProperty<prisms.arch.ds.Permission> selectedAppPermission = PrismsProperty
		.create("selectedAppPermission", prisms.arch.ds.Permission.class);

	/**
	 * All users available to the application
	 */
	public static final PrismsProperty<User []> users = PrismsProperty.create("users",
		User [].class);

	/**
	 * The user that has been selected by the client user to be edited
	 */
	public static final PrismsProperty<User> selectedUser = PrismsProperty.create("selectedUser",
		User.class);

	/**
	 * The application selected to configure access and permissions for the {@link #selectedUser}
	 */
	public static final PrismsProperty<PrismsApplication> userApplication = PrismsProperty.create(
		"userApplication", PrismsApplication.class);

	/**
	 * The group selected to configure membership for the {@link #selectedUser} and
	 * {@link #userApplication}
	 */
	public static final PrismsProperty<prisms.arch.ds.UserGroup> userSelectedGroup = PrismsProperty
		.create("userSelectedGroup", prisms.arch.ds.UserGroup.class);

	/**
	 * The permission selected to view the characteristics of for the {@link #userSelectedGroup}
	 */
	public static final PrismsProperty<prisms.arch.ds.Permission> userSelectedPermission = PrismsProperty
		.create("userSelectedPermission", prisms.arch.ds.Permission.class);
}
